Replace these calls with direct use of GMainContext api.
toplevels = get_all_widgets ();
queue_show ();
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
GdkFrameClock *frame_clock,
gpointer user_data)
{
- gtk_main_quit ();
+ gboolean *done = user_data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
return G_SOURCE_REMOVE;
}
gtk_test_widget_wait_for_draw (GtkWidget *widget)
{
g_return_if_fail (GTK_IS_WIDGET (widget));
+ gboolean done = FALSE;
/* We can do this here because the whole tick procedure does not
* reenter the main loop. Otherwise we'd need to manually get the
*/
gtk_widget_add_tick_callback (widget,
quit_main_loop_callback,
- NULL,
+ &done,
NULL);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
static GType *all_registered_types = NULL;
gtk_window_present (GTK_WINDOW (window));
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
g_object_unref (builder);
}
{ NULL }
};
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main(int argc, char **argv)
{
GdkDisplay *display;
GdkMonitor *monitor;
GdkRectangle monitor_bounds;
+ gboolean done = FALSE;
GOptionContext *context = g_option_context_new (NULL);
g_option_context_add_main_entries (context, options, NULL);
gtk_container_add (GTK_CONTAINER (window), da);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), NULL);
g_signal_connect (window, "map",
G_CALLBACK (on_map), NULL);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_revealer_set_reveal_child (revealer, !gtk_revealer_get_reveal_child (revealer));
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main(int argc, char **argv)
{
GtkCssProvider *cssprovider;
GError *error = NULL;
guint x, y;
+ gboolean done = FALSE;
GOptionContext *context = g_option_context_new (NULL);
g_option_context_add_main_entries (context, options, NULL);
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
frame_stats_ensure (GTK_WINDOW (window));
revealer = gtk_revealer_new ();
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
variable_init (&frame_stats->latency);
if (frame_stats->num_stats == max_stats)
- gtk_main_quit ();
+ exit (0);
}
frame_stats->frames_since_last_print++;
gtk_widget_destroy (gears);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
*fps_label, *gears, *extra_hbox, *bbox, *overlay,
*revealer, *frame, *label, *scrolled, *popover;
int i;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_titlebar (GTK_WINDOW (window), g_object_new (GTK_TYPE_HEADER_BAR, "visible", TRUE, "title", "GdkGears", NULL));
gtk_window_set_default_size (GTK_WINDOW (window), 640, 640);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
overlay = gtk_overlay_new ();
g_object_set (overlay, "margin", 12, NULL);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return EXIT_SUCCESS;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
cairo_stroke (cr);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *scale;
GtkWidget *da;
GtkEventController *controller;
+ gboolean done = FALSE;
gtk_init ();
gtk_widget_add_controller (da, controller);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_scrolled_window_set_overlay_scrolling (sw, active == 1);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *sb2;
GtkWidget *combo;
GtkAdjustment *adj;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 20);
gtk_container_add (GTK_CONTAINER (window), box);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
{ NULL }
};
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *grid;
GError *error = NULL;
int i;
+ gboolean done = FALSE;
GOptionContext *context = g_option_context_new (NULL);
g_option_context_add_main_entries (context, options, NULL);
gtk_widget_show (window);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
- gtk_main ();
+ G_CALLBACK (quit_cb), &done);
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_free (section_str);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
graphene_rect_t node_bounds;
GOptionContext *option_context;
GError *error = NULL;
+ gboolean done = FALSE;
option_context = g_option_context_new ("NODE-FILE [-o OUTPUT] [--compare]");
g_option_context_add_main_entries (option_context, options, NULL);
MAX (600, node_bounds.size.width),
MAX (500, node_bounds.size.height));
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_print ("hello world\n");
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window, *button;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "hello world");
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
button = gtk_button_new ();
gtk_button_set_label (GTK_BUTTON (button), "hello world");
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (win);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (dialog);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
TEST_WIDGET_LAST
};
+static gboolean done = FALSE;
static GtkWidget *test_widgets[TEST_WIDGET_LAST];
static GtkWidget*
return gtk_button_new_with_label ("BUTTON!");
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
static void
open_test_window (void)
{
test_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (test_window), "Tests");
- g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), test_window);
+ g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_resizable (GTK_WINDOW (test_window), FALSE);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Controls");
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (window), box);
test_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (test_window), "Alignment");
- g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_resizable (GTK_WINDOW (test_window), TRUE);
gtk_window_set_default_size (GTK_WINDOW (test_window), 500, 500);
test_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (test_window), "Margin");
- g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_resizable (GTK_WINDOW (test_window), TRUE);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (test_window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (test_window, "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_show (box);
open_margin_window ();
open_valigned_label_window ();
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_free (path);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *w1;
gchar *path;
+ gboolean done = FALSE;
gtk_init ();
gtk_container_add (GTK_CONTAINER (toplevel), grid);
gtk_widget_show (toplevel);
- g_signal_connect (toplevel, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return EXIT_SUCCESS;
}
g_print ("Activated custom item %s\n", item_name);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc,
char **argv)
{
GtkWidget *w;
+ gboolean done = FALSE;
gtk_init ();
#endif
gtk_widget_show (toplevel);
- g_signal_connect (toplevel, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return EXIT_SUCCESS;
}
{ "page-flipping assistant", create_page_flipping_assistant },
};
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, gchar *argv[])
{
GtkWidget *window, *box, *button;
gint i;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_hide_on_close (GTK_WINDOW (window), TRUE);
- g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
gtk_container_add (GTK_CONTAINER (window), box);
}
gtk_widget_show (window);
- gtk_main ();
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_style_context_add_class (gtk_widget_get_style_context (widget), class[size]);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc,
char **argv)
GtkAdjustment *adjustment;
int i, j;
GtkCssProvider *provider;
+ gboolean done = FALSE;
gtk_init ();
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (quit_cb), &done);
notebook = gtk_notebook_new ();
gtk_container_add (GTK_CONTAINER (window), notebook);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_free (text);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *blur_box;
GtkWidget *scale;
GtkWidget *value_label;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
blur_box = g_object_new (gtk_blur_box_get_type (),
"orientation", GTK_ORIENTATION_VERTICAL,
gtk_container_add (GTK_CONTAINER (window), blur_box);
gtk_widget_show (window);
- gtk_main ();
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
"}"
;
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
int
main (int argc, char **argv)
GtkWidget *bottom;
GtkWidget *w;
GtkCssProvider *provider;
+ gboolean done = FALSE;
gtk_init ();
gtk_container_add (GTK_CONTAINER (box), top);
gtk_container_add (GTK_CONTAINER (box), bottom);
gtk_container_add (GTK_CONTAINER (window), box);
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
gtk_widget_destroy (window);
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
cairo_surface_destroy (circles);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *window, *darea;
+ gboolean done = FALSE;
gtk_init ();
gtk_container_add (GTK_CONTAINER (window), darea);
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (darea), on_draw, NULL, NULL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return frame;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
static void
create_calendar(void)
{
{ "show-day-names", "Show Day Names", calendar },
{ "show-week-numbers", "Show Week Numbers", calendar },
};
+ gboolean done = FALSE;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_hide_on_close (GTK_WINDOW (window), TRUE);
gtk_window_set_title (GTK_WINDOW (window), "GtkCalendar Example");
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
gtk_widget_set_halign (bbox, GTK_ALIGN_END);
button = gtk_button_new_with_label ("Close");
- g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (button, "clicked", G_CALLBACK (quit_cb), &done);
gtk_container_add (GTK_CONTAINER (bbox), button);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, DEF_PAD_SMALL);
gtk_window_set_default_widget (GTK_WINDOW (window), button);
gtk_window_set_default_size (GTK_WINDOW (window), 600, 0);
- g_signal_connect (window, "close-request", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
-
- gtk_main();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
focus_cell_area ();
background_area ();
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return sw;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *vbox;
GtkWidget *label;
GtkWidget *tree;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_container_add (GTK_CONTAINER (vbox), tree);
gtk_widget_show (window);
- gtk_main ();
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
#include <gtk/gtk.h>
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *box;
GtkWidget *child;
+ gboolean done = FALSE;
gtk_init ();
gtk_label_set_ellipsize (GTK_LABEL (child), PANGO_ELLIPSIZE_END);
gtk_center_box_set_end_widget (GTK_CENTER_BOX (box), child);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return box;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *window;
GdkDisplay *alt_display;
+ gboolean done = FALSE;
gtk_init ();
alt_display = gdk_display_get_default ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_container_add (GTK_CONTAINER (window),
get_window_contents (gtk_widget_get_display (window),
alt_display));
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
color.red, color.green, color.blue, color.alpha);
}
+static gboolean done = FALSE;
+
static void
dialog_response (GtkDialog *dialog, gint response)
{
break;
}
- gtk_main_quit ();
+ done = TRUE;
+
+ g_main_context_wakeup (NULL);
}
int
gtk_widget_show (dialog);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_tree_path_free (path);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkCellArea *area;
gchar *text;
gint i;
+ gboolean done = FALSE;
gtk_init ();
gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
gtk_container_add (GTK_CONTAINER (window), mainbox);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_container_add (GTK_CONTAINER (vbox), button);
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkDragSource *source;
GdkContentFormats *targets;
GtkDropTarget *dest;
+ gboolean done = FALSE;
test_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), &done);
grid = gtk_grid_new ();
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_grid_attach (GTK_GRID (grid), make_image ("dialog-information", CENTER), 1, 3, 1, 1);
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
cairo_stroke (cr);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window, *vbox, *label;
GtkWidget *combo, *scale, *overlay, *da;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return TRUE;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkEntryCompletion *completion;
GtkTreeModel *completion_model;
GtkCellRenderer *cell;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_print ("You clicked me!\n");
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GIcon *icon;
GdkContentProvider *content;
GValue value = G_VALUE_INIT;
+ gboolean done = FALSE;
gtk_init ();
gtk_window_set_title (GTK_WINDOW (window), "Gtk Entry Icons Test");
g_signal_connect (G_OBJECT (window), "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), &done);
grid = gtk_grid_new ();
gtk_container_add (GTK_CONTAINER (window), grid);
gtk_css_provider_load_from_data (provider, cssdata, -1);
gtk_style_context_add_provider_for_display (gdk_display_get_default (), GTK_STYLE_PROVIDER (provider), 800);
gtk_widget_show (window);
- gtk_main();
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
create_box_window ();
create_grid_window ();
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
}
static void
-response_cb (GtkDialog *dialog, gint response_id)
+response_cb (GtkDialog *dialog, gint response_id, gpointer data)
{
- gtk_main_quit ();
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
}
int
GtkWidget *sw;
GtkWidget *tv;
GtkTextBuffer *buffer;
+ gboolean done = FALSE;
gtk_init ();
g_signal_connect (expander, "notify::expanded",
G_CALLBACK (expander_cb), dialog);
- g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL);
+ g_signal_connect (dialog, "response", G_CALLBACK (response_cb), &done);
gtk_window_present (GTK_WINDOW (dialog));
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
static void
response_cb (GtkDialog *dialog,
- gint response_id)
+ gint response_id,
+ gpointer data)
{
+ gboolean *done = data;
+
if (response_id == GTK_RESPONSE_OK)
{
GSList *list;
else
g_print ("Dialog was closed\n");
- gtk_main_quit ();
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
}
static gboolean
{ NULL }
};
GOptionContext *context;
+ gboolean done = FALSE;
context = g_option_context_new ("");
g_option_context_add_main_entries (context, options, NULL);
g_signal_connect (dialog, "current-folder-changed",
G_CALLBACK (print_current_folder), NULL);
g_signal_connect (dialog, "response",
- G_CALLBACK (response_cb), NULL);
+ G_CALLBACK (response_cb), &done);
g_signal_connect (dialog, "confirm-overwrite",
G_CALLBACK (confirm_overwrite_cb), NULL);
* someone else destroys them. We explicitly destroy windows to catch leaks.
*/
g_object_ref (dialog);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
gtk_widget_destroy (dialog);
g_object_unref (dialog);
gtk_container_add (GTK_CONTAINER (hbox), button);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
int
main (int argc,
GtkSizeGroup *label_group;
GOptionContext *context;
gchar *cwd;
+ gboolean done = FALSE;
context = g_option_context_new ("- test GtkFileChooserButton widget");
g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
win = gtk_dialog_new_with_buttons ("TestFileChooserButton", NULL, 0,
"_Quit", GTK_RESPONSE_CLOSE, NULL);
- g_signal_connect (win, "response", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (win, "response", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 18);
g_object_set (vbox, "margin", 6, NULL);
gtk_widget_show (win);
gtk_window_present (GTK_WINDOW (win));
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return window;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window;
+ gboolean done = FALSE;
gtk_init ();
window = create_window ();
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_debug ("font-activated: %s", font_name);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *box;
GtkWidget *fontchooser;
+ gboolean done = FALSE;
gtk_init ();
gtk_widget_show (window);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
g_signal_connect (fontchooser, "notify::font",
G_CALLBACK (notify_font_cb), NULL);
g_signal_connect (fontchooser, "notify::preview-text",
gtk_font_chooser_set_preview_text (GTK_FONT_CHOOSER (fontchooser), "[user@host ~]$ &>>");
gtk_font_chooser_set_show_preview_entry (GTK_FONT_CHOOSER (fontchooser), FALSE);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_debug ("font-activated: %s", font_name);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *font_button;
+ gboolean done = FALSE;
gtk_init ();
monospace_filter, NULL, NULL);
}
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_frame_set_shadow_type (frame, shadow_type);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int main (int argc, char **argv)
{
GtkWidget *window, *widget;
GtkGrid *grid;
gfloat xalign;
gboolean draw_border;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 5));
g_object_set (vbox, "margin", 12, NULL);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_container_add (GTK_CONTAINER (window), box);
-
-
-
-
-
-
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
#include <gtk/gtk.h>
#include <glib/gstdio.h>
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc,
char **argv)
GIcon *emblemed;
GEmblem *emblem;
gchar *str;
+ gboolean done = FALSE;
#ifdef GTK_SRCDIR
g_chdir (GTK_SRCDIR);
gtk_widget_show (toplevel);
- g_signal_connect (toplevel, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return box;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window, *box, *button, *controls;
int i;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "GtkGLArea - Triangle");
gtk_window_set_default_size (GTK_WINDOW (window), 400, 600);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE);
gtk_box_set_spacing (GTK_BOX (box), 6);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return EXIT_SUCCESS;
}
#include "gtkgears.h"
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window, *fixed, *gears, *spinner;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Test GL/gtk inter-blending");
gtk_window_set_default_size (GTK_WINDOW (window), 250, 250);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
fixed = gtk_fixed_new ();
gtk_container_add (GTK_CONTAINER (window), fixed);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return EXIT_SUCCESS;
}
#define BUS_NAME "org.gtk.TestMenus"
#define OBJ_PATH "/org/gtk/TestMenus"
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
{ NULL, }
};
GOptionContext *context;
+ gboolean done = FALSE;
context = g_option_context_new ("");
g_option_context_add_main_entries (context, entries, NULL);
}
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
gtk_container_add (GTK_CONTAINER (window), box);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
empty_grid ();
spanning_grid ();
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_grid_attach (GTK_GRID (grid), label4, 1, 1, 1, 1);
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return FALSE;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkTreeModel *model;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
+ gboolean done = FALSE;
gtk_init ();
model = create_model ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_default_size (GTK_WINDOW (window), 320, 480);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
#include "test.xpm"
+static gboolean done = FALSE;
+
gboolean
file_exists (const char *filename)
{
static gboolean
cmw_destroy_cb(GtkWidget *widget)
{
- /* This is needed to get out of gtk_main */
- gtk_main_quit ();
+ done = TRUE;
+ g_main_context_wakeup (NULL);
return FALSE;
}
/* wait until destroy calls gtk_main_quit */
gtk_widget_show (csd);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
static void
/* wait until destroy calls gtk_main_quit */
gtk_widget_show (fs);
- gtk_main();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
gtk_widget_show (window);
/* wait until dialog get destroyed */
- gtk_main();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
/*
gtk_widget_destroy (window);
}
-/*
- * Test of recursive mainloop
- */
-
-void
-mainloop_destroyed (GtkWidget *w, GtkWidget **window)
-{
- *window = NULL;
- gtk_main_quit ();
-}
-
-void
-create_mainloop (GtkWidget *widget)
-{
- static GtkWidget *window = NULL;
- GtkWidget *content_area;
- GtkWidget *label;
-
- if (!window)
- {
- window = gtk_dialog_new ();
-
- gtk_window_set_display (GTK_WINDOW (window),
- gtk_widget_get_display (widget));
-
- gtk_window_set_title (GTK_WINDOW (window), "Test Main Loop");
-
- g_signal_connect (window, "destroy",
- G_CALLBACK (mainloop_destroyed),
- &window);
-
- content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
-
- label = gtk_label_new ("In recursive main loop...");
- g_object_set (label, "margin", 20, NULL);
-
- gtk_container_add (GTK_CONTAINER (content_area), label);
- gtk_widget_show (label);
-
- gtk_dialog_add_button (GTK_DIALOG (window),
- "Leave",
- GTK_RESPONSE_OK);
- g_signal_connect_swapped (window, "response",
- G_CALLBACK (gtk_widget_destroy),
- window);
- }
-
- if (!gtk_widget_get_visible (window))
- {
- gtk_widget_show (window);
-
- g_print ("create_mainloop: start\n");
- gtk_main ();
- g_print ("create_mainloop: done\n");
- }
- else
- gtk_widget_destroy (window);
-}
-
static void
show_native (GtkWidget *button,
GtkFileChooserNative *native)
do_exit (GtkWidget *widget, GtkWidget *window)
{
gtk_widget_destroy (window);
- gtk_main_quit ();
+ done = TRUE;
+ g_main_context_wakeup (NULL);
}
struct {
{ "size groups", create_size_groups },
{ "spinbutton", create_spins },
{ "statusbar", create_statusbar },
- { "test mainloop", create_mainloop, TRUE },
{ "test timeout", create_timeout_test },
{ "toggle buttons", create_toggle_buttons },
{ "tooltips", create_tooltips },
};
int nbuttons = sizeof (buttons) / sizeof (buttons[0]);
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
void
create_main_window (void)
{
gtk_widget_set_name (window, "main_window");
gtk_window_set_default_size (GTK_WINDOW (window), -1, 400);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (window), box1);
create_main_window ();
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
if (1)
{
}
}
+static gboolean done = FALSE;
+
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
static void
change_header (GtkButton *button, gpointer data)
{
widget = gtk_button_new_with_label ("_Close");
gtk_button_set_use_underline (GTK_BUTTON (widget), TRUE);
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "suggested-action");
- g_signal_connect (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (widget, "clicked", G_CALLBACK (quit_cb), &done);
gtk_header_bar_pack_end (GTK_HEADER_BAR (header), widget);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (window), box);
-
content = gtk_image_new_from_icon_name ("start-here-symbolic");
gtk_image_set_pixel_size (GTK_IMAGE (content), 512);
gtk_container_add (GTK_CONTAINER (box), footer);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
gtk_widget_destroy (window);
return window;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window;
+ gboolean done = FALSE;
gtk_init ();
window = create_window ();
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
{
GtkIconPaintable *icon;
GtkWidget *window, *image;
+ gboolean done = FALSE;
if (argc < 4)
{
gtk_image_set_from_paintable (GTK_IMAGE (image), GDK_PAINTABLE (icon));
g_object_unref (icon);
gtk_container_add (GTK_CONTAINER (window), image);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
else if (strcmp (argv[1], "list") == 0)
{
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_print ("Button %d clicked\n", GPOINTER_TO_INT (data));
}
+static gboolean done = FALSE;
+
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
static void
kinetic_scrolling (void)
{
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
grid = gtk_grid_new ();
kinetic_scrolling ();
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_level_bar_set_mode (bar, GTK_LEVEL_BAR_MODE_CONTINUOUS);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *bar;
GtkWidget *box2;
GtkWidget *sw;
+ gboolean done = FALSE;
gtk_init ();
gtk_widget_show (window);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
g_timeout_add (100, increase_level, bar);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return row;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int main (int argc, char *argv[])
{
GtkWidget *window, *list, *sw, *row;
gint i;
gchar *text;
+ gboolean done = FALSE;
gtk_init ();
gtk_list_box_insert (GTK_LIST_BOX (list), row, -1);
}
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
gtk_widget_show (dialog);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
static gboolean dont_ask_password = FALSE;
static gboolean dont_save_password = FALSE;
+static gboolean done = FALSE;
static void
got_reply (GMountOperation *op,
else if (G_MOUNT_OPERATION_UNHANDLED)
g_assert_not_reached ();
- gtk_main_quit ();
+ done = TRUE;
+ g_main_context_wakeup (NULL);
}
int
flags);
}
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return button;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
gint
main (gint argc, gchar *argv[])
{
GtkWidget *window, *grid;
+ gboolean done = FALSE;
gtk_init ();
gtk_container_add (GTK_CONTAINER (window), grid);
gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
}
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *grid;
GtkWidget *box, *button;
GList *orientables = NULL;
+ gboolean done = FALSE;
gtk_init ();
gtk_widget_show (window);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), &done);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
""
;
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
int
main (int argc, char **argv)
GtkWidget *bottom;
GtkWidget *w;
GtkCssProvider *provider;
+ gboolean done = FALSE;
gtk_init ();
gtk_container_add (GTK_CONTAINER (box), top);
gtk_container_add (GTK_CONTAINER (box), bottom);
gtk_container_add (GTK_CONTAINER (window), box);
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
win8 = test_input_stacking ();
gtk_widget_show (win8);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (win);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_object_unref (dest);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main(int argc, char **argv)
{
GtkRequisition scratch_requisition;
const gchar *creator;
GError *error;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
#define GTK_COMPILATION
#include "gtk/gtkplacesviewprivate.h"
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *win;
GtkWidget *view;
+ gboolean done = FALSE;
gtk_init ();
gtk_container_add (GTK_CONTAINER (win), view);
gtk_widget_show (win);
- g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), win);
+ g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
{ "action10", activate, NULL, NULL, NULL }
};
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *check;
GtkWidget *combo;
GtkWidget *header_bar;
+ gboolean done = FALSE;
#ifdef GTK_SRCDIR
g_chdir (GTK_SRCDIR);
g_object_unref (builder);
- g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (win);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_grid_attach (GTK_GRID (box), revealer, 3, 4, 1, 1);
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
gtk_widget_destroy (window);
}
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int main (int argc, char *argv[])
{
GtkWidget *window;
gdouble pos_marks[4] = { 0.0, 33.3, 66.6, 100.0 };
const gchar *pos_labels[4] = { "Left", "Right", "Top", "Bottom" };
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Ranges with marks");
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
flipbox = box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
gtk_widget_set_hexpand (flipbox, TRUE);
gtk_container_add (GTK_CONTAINER (box2), button);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (win);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
scrollable_policy ();
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
static gint num_windows = 0;
+static gboolean done = FALSE;
+
static gboolean
on_delete (GtkWindow *w)
{
num_windows--;
if (num_windows == 0)
- gtk_main_quit ();
+ {
+ done = TRUE;
+ g_main_context_wakeup (NULL);
+ }
return FALSE;
}
prepare_window_for_orientation (GTK_ORIENTATION_HORIZONTAL);
prepare_window_for_orientation (GTK_ORIENTATION_VERTICAL);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
G_BINDING_DEFAULT);
gtk_window_present (GTK_WINDOW (win));
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
gtk_widget_destroy (window);
gtk_window_present (GTK_WINDOW (win));
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return hbox;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *vbox, *hbox;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "GtkSwitch");
gtk_window_set_default_size (GTK_WINDOW (window), 400, -1);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
hbox = make_delayed_switch (FALSE, TRUE);
gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return EXIT_SUCCESS;
}
widget_class->snapshot = gtk_texture_view_snapshot;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GdkTexture *texture;
GFile *file;
GError *error = NULL;
+ gboolean done = FALSE;
gtk_init ();
}
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
view = g_object_new (GTK_TYPE_TEXTURE_VIEW, NULL);
((GtkTextureView*)view)->texture = g_steal_pointer (&texture);
gtk_container_add (GTK_CONTAINER (window), view);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
g_object_unref (file);
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_text_buffer_move_mark (buffer, the_mark, &iter);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *window, *sw, *box, *box2, *button;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (GTK_WIDGET (window));
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return TRUE;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkTextTag *tag;
gchar *text, *markup;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Tooltips test");
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
gtk_container_add (GTK_CONTAINER (window), box);
/* Done! */
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
selection_changed_cb (gtk_tree_view_get_selection (treeview), NULL);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc,
char **argv)
GtkWidget *treeview;
GtkTreeModel *model;
guint i;
+ gboolean done = FALSE;
gtk_init ();
gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_default_size (GTK_WINDOW (window), 430, 400);
sw = gtk_scrolled_window_new (NULL, NULL);
g_idle_add (dance, treeview);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
"GTK_TREE_MODEL_ROW"
};
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkTreeModel *sample_model;
GdkContentFormats *targets;
gint i;
+ gboolean done = FALSE;
gtk_init ();
/* Set up the test windows. */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
gtk_window_set_title (GTK_WINDOW (window), "Top Window");
swindow = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_show (window);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
gtk_window_set_title (GTK_WINDOW (window), "Bottom Window");
swindow = gtk_scrolled_window_new (NULL, NULL);
/* Set up the main window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_default_size (GTK_WINDOW (window), 500, 300);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_container_add (GTK_CONTAINER (hbox), button);
gtk_widget_show (window);
- gtk_main ();
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_list_free (columns);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *sw;
GtkWidget *tree_view;
GtkWidget *button;
+ gboolean done = FALSE;
gtk_init ();
/* Window and box */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
gtk_container_add (GTK_CONTAINER (window), vbox);
/* Done */
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_free (name);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
gint
main (gint argc, gchar **argv)
{
GtkCellArea *area;
CallbackData callback[4];
GtkGesture *gesture;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "GtkTreeView editing sample");
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return TRUE;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *hbox;
GtkWidget *button;
GtkTreePath *path;
+ gboolean done = FALSE;
gtk_init ();
path = gtk_tree_path_new_from_string ("80");
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Reflow test");
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("Incremental Reflow Test"));
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 400);
gtk_widget_show (window);
g_timeout_add (1000, (GSourceFunc) futz, NULL);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_object_set (cell, "indicator_size", size, NULL);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkCellRenderer *renderer;
gint col_offset;
GtkTreeViewColumn *column;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Card planning sheet");
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("Jonathan's Holiday Card Planning Sheet"));
gtk_container_add (GTK_CONTAINER (window), vbox);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Model");
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("The model revealed"));
gtk_container_add (GTK_CONTAINER (window), vbox);
650, 400);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return result;
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkFilterListModel *filter;
GtkSliceListModel *slice;
GFile *root;
+ gboolean done = FALSE;
gtk_init ();
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (win), 400, 600);
- g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), win);
+ g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (win), vbox);
gtk_widget_show (win);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_tree_view_set_search_entry (GTK_TREE_VIEW (tree_view), NULL);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkWidget *entry, *button;
GtkWidget *window2, *vbox2, *scrolled_window2, *tree_view2;
GtkWidget *window3, *vbox3, *scrolled_window3, *tree_view3;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Words, words, words - Window 1");
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_add (GTK_CONTAINER (vbox), gtk_label_new ("Jonathan and Kristian's list of cool words. (And Anders' cool list of numbers) \n\nThis is just a GtkTreeStore"));
gtk_container_add (GTK_CONTAINER (window), vbox);
window2 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window2),
"Words, words, words - window 2");
- g_signal_connect (window2, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window2, "destroy", G_CALLBACK (quit_cb), &done);
vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_add (GTK_CONTAINER (vbox2),
gtk_label_new ("Jonathan and Kristian's list of words.\n\nA GtkTreeModelSort wrapping the GtkTreeStore of window 1"));
window3 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window3),
"Words, words, words - Window 3");
- g_signal_connect (window3, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window3, "destroy", G_CALLBACK (quit_cb), &done);
vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
gtk_container_add (GTK_CONTAINER (vbox3),
gtk_label_new ("Jonathan and Kristian's list of words.\n\nA GtkTreeModelSort wrapping the GtkTreeModelSort of window 2"));
}
}
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
"GTK_TREE_MODEL_ROW"
};
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc,
char **argv)
GtkTreeModel *model;
GdkContentFormats *targets;
gint i;
+ gboolean done = FALSE;
gtk_init ();
run_automated_tests ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_window_set_default_size (GTK_WINDOW (window), 430, 400);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
return GTK_TREE_MODEL (model);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
gint
main (gint argc, gchar **argv)
{
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
GtkCellArea *area;
+ gboolean done = FALSE;
gtk_init ();
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Vertical cells in GtkTreeViewColumn example");
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_ETCHED_IN);
800, 400);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
g_signal_emit_by_name (button, "clicked");
g_timeout_add (4000, (GSourceFunc) show_error, window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_class_set_css_name (widget_class, "focuswidget");
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main()
{
GtkWidget *window;
GtkWidget *widget;
GtkCssProvider *provider;
+ gboolean done = FALSE;
gtk_init ();
gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
gtk_container_add (GTK_CONTAINER (window), widget);
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
}
do_picking = gtk_toggle_button_get_active (source);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char **argv)
{
GtkWidget *titlebar;
GtkWidget *toggle_button;
GtkCssProvider *provider;
+ gboolean done = FALSE;
gtk_init ();
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
matrix_chooser = g_object_new (GTK_TYPE_MATRIX_CHOOSER, NULL);
transform_tester = g_object_new (GTK_TYPE_TRANSFORM_TESTER, NULL);
gtk_container_add (GTK_CONTAINER (window), box);
gtk_window_set_default_size ((GtkWindow *)window, 200, 200);
- g_signal_connect (window, "close-request", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
create_window ();
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
}
}
+static gboolean done = FALSE;
+
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
static void
make_window (gint view_type)
{
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
/* buttons */
button = gtk_button_new_with_label ("gtk_tree_store_remove");
make_window (0);
make_window (1);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
{ NULL }
};
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main(int argc, char **argv)
{
GError *error = NULL;
GdkFrameClock *frame_clock;
GOptionContext *context;
+ gboolean done = FALSE;
context = g_option_context_new ("");
g_option_context_add_main_entries (context, options, NULL);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);
g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ G_CALLBACK (quit_cb), &done);
da = gtk_drawing_area_new ();
gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), on_draw, NULL, NULL);
G_CALLBACK (on_update), NULL);
gdk_frame_clock_begin_updating (frame_clock);
- gtk_main ();
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (popup);
}
+static void
+quit_cb (GtkWidget *widget,
+ gpointer data)
+{
+ gboolean *done = data;
+
+ *done = TRUE;
+
+ g_main_context_wakeup (NULL);
+}
+
int
main (int argc, char *argv[])
{
GtkBuilder *builder;
GtkWidget *window;
const gchar *filename;
+ gboolean done = FALSE;
gtk_init ();
window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
g_object_unref (G_OBJECT (builder));
- g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done);
gtk_widget_show (window);
create_dark_popup (window);
- gtk_main ();
+
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gtk_widget_show (window);
- gtk_main ();
+ while (TRUE)
+ g_main_context_iteration (NULL, TRUE);
return 0;
}
gdk_display_manager_set_default_display (gdk_display_manager_get (), display);
win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
but = gtk_button_new_with_label ("Try to Exit");
g_signal_connect_swapped (but, "clicked",
test_app_chooser_dialog_basic (void)
{
GtkWidget *widget;
- gboolean done;
+ gboolean done = FALSE;
widget = gtk_app_chooser_dialog_new_for_content_type (NULL, 0, "text/plain");
g_assert (GTK_IS_APP_CHOOSER_DIALOG (widget));
* the main context then app_chooser_online_get_default_ready_cb()
* will be eventually called and segfault.
*/
- done = FALSE;
g_timeout_add (500, main_loop_quit_cb, &done);
while (!done)
g_main_context_iteration (NULL, TRUE);
test_file_chooser_widget_basic (void)
{
GtkWidget *widget;
+ gboolean done = FALSE;
/* This test also tests the internal GtkPathBar widget */
g_test_log_set_fatal_handler (ignore_gvfs_warning, NULL);
* Since we assert all automated children are finalized we
* can catch this
*/
- g_timeout_add (100, main_loop_quit_cb, NULL);
- gtk_main();
+ g_timeout_add (100, main_loop_quit_cb, &done);
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
gtk_widget_destroy (widget);
}
test_file_chooser_button_basic (void)
{
GtkWidget *widget;
+ gboolean done = FALSE;
g_test_log_set_fatal_handler (ignore_gvfs_warning, NULL);
widget = gtk_file_chooser_button_new ("Choose a file !", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
g_assert (GTK_IS_FILE_CHOOSER_BUTTON (widget));
- g_timeout_add (100, main_loop_quit_cb, NULL);
- gtk_main();
+ g_timeout_add (100, main_loop_quit_cb, &done);
+ while (!done)
+ g_main_context_iteration (NULL, TRUE);
gtk_widget_destroy (widget);
}